//项目路径
var strPath = window.document.location.pathname;
//var postPath = strPath.substring(0, strPath.substr(1).indexOf('/') + 1);
var postPath = '/gdp';
var editStart = 1; //1添加、2修改
$(function () {
    //数据列表
    $("#tb_dataList").bootstrapTable({
        url: postPath + '/system/sysProject/getProjectConfigData',
        queryParams: queryParams,
        detailView: true,//父子表
        undefinedText: '-',
        pagination: true, // 分页
        striped: true, // 是否显示行间隔色
        cache: false, // 是否使用缓存
        singleSelect: true,
        pageList: [5, 10, 20],
        uniqueId: 'guid', // 每一行的唯一标识
        sidePagination: 'server', // 服务端处理分页
        responseHandler: function (res) {
            return {
                total: res.data.total, //总页数
                rows: res.data.rows //数据
            };
        },
        columns: [
            {
                field: 'state',
                checkbox: true,
                align: 'center',
                valign: 'middle'
            },
            {
                title: '类别编码',
                field: 'pcode', // 字段
                align: 'center', // 对齐方式（左 中 右）
                valign: 'middle', //
                sortable: false
            },
            {
                title: '类别名称',
                field: 'pname',
                align: 'center',
                valign: 'middle',
                sortable: false
            },
            /*{
                  title : '工程类型',
                  field : 'ptype',
                  align : 'center',
                  valign : 'middle',
                  sortable : false
              },*/ {
                title: '类别说明',
                field: 'pdesc',
                align: 'center',
                valign: 'middle',
                sortable: false
            },
            {
                title: '备注',
                field: 'remark',
                align: 'center',
                valign: 'middle',
                sortable: false
            },
            {
                title: '创建人',
                field: 'createuser',
                align: 'center',
                valign: 'middle',
                sortable: false
            }
            // ,{
            //     title : '创建时间',
            //     field : 'createdate',
            //     align : 'center',
            //     valign : 'middle',
            //     sortable : false
            // }
        ],
        onExpandRow: function (index, row, $detail) {
            var cur_table = $detail.html('<table></table>').find('table');
            $(cur_table).bootstrapTable({
                url: postPath + "/system/sysProject/getProjectToDataSource?pcode=" + row.pcode,
                undefinedText: '-',
                pagination: false, // 分页
                striped: true, // 是否显示行间隔色
                cache: false, // 是否使用缓存
                toolbar: "",// 指定工具栏
                showColumns: false, // 显示隐藏列
                showRefresh: false, // 显示刷新按钮
                uniqueId: "dbKey", // 每一行的唯一标识
                columns: [{
                    title: '数据库标识',
                    field: 'dbKey',
                    align: 'center',
                    valign: 'middle',
                    sortable: false
                }, {
                    title: '数据库名',
                    field: 'dbName', // 字段
                    align: 'center', // 对齐方式（左 中 右）
                    valign: 'middle', //
                    sortable: false
                }, {
                    title: '数据库版本',
                    field: 'dbVersion',
                    align: 'center',
                    valign: 'middle',
                    sortable: false
                }, {
                    title: '中文名称',
                    field: 'dbMark',
                    align: 'center',
                    valign: 'middle',
                    sortable: false
                }]

            });
        }
    });


    //查询操作
    $('#btn_Search').click(function () {
        $('#tb_dataList').bootstrapTable('refresh');
    });

    //刷新操作
    $('#btn_ref').click(function () {
        $('#tb_dataList').bootstrapTable('refresh');
    });

    //删除数据
    $('#btn_del').click(function () {
        var row = $('#tb_dataList').bootstrapTable('getSelections');
        if (row == null || row == '') {
            // bootbox.alert('请选择一行!');
            bootbox,confirm('请选择一行!');
            return;
        }

        var message = ""
        $.each(row, function (i, e) {
            message += e.pcode + ',' + e.pname + "</br>";
        });

        var deleteFunction = function (result) {
            if (result == false) return;
            var keys = '';
            var pcode = '';
            $.each(row, function (i, e) {
                keys += e.guid + ',';
                pcode += e.pcode + ',';
            });
            keys = keys.substring(0, keys.length - 1);
            pcode = pcode.substring(0, pcode.length - 1);
            $.ajax({
                url: postPath + '/system/sysProject/deleteProjectConfig',
                type: 'POST',
                data: {guids: keys, pcode: pcode},
                success: function (res) {
                    if (!res.success) {
                        // bootbox.alert(res.msg);
                        console.log("luowen" + res)
                        showMsg('删除失败!<br/>' + res.msg, 'error');

                    } else {
                        showMsg('删除成功!', 'success');
                        $('#tb_dataList').bootstrapTable('refresh');
                    }
                },
                error: function (errorMessage) {
                    console.log("luowen" + errorMessage)
                    showMsg('删除失败!<br/>' + errorMessage , 'error');
                }
            });
        };

        confirmDelete(message, deleteFunction);
    });

    //添加操作
    $('#btn_add').click(function () {
        $('#pcode').removeAttr('disabled');
        cleanContent();
        $('#EditContent').modal('show');
        editStart = 1;
    });

    //修改操作
    $('#btn_edit').click(function () {
        cleanContent();
        var row = $('#tb_dataList').bootstrapTable('getSelections');
        if (row == null || row == '') {
            // bootbox.alert('请选择一行!');
            showMsg('请选择一行!', 'warning');
            return;
        } else if (row.length > 1) {
            showMsg('请选择一行!', 'warning');
            // bootbox.alert('请选择一行!');
            return;
        }

        $.ajax({
            type: 'POST',
            url: postPath + '/system/sysProject/getProjectConfigByGuid',
            async: false,
            data: {guid: row[0].guid},
            success: function (res) {
                if (res.success) {
                    $('#guid').val(res.data.guid);
                    $('#pcode').val(res.data.pcode);
                    $('#pname').val(res.data.pname);
                    $('#ptype').val(res.data.ptype);
                    $('#pdesc').val(res.data.pdesc);
                    $('#remark').val(res.data.remark);
                    $('#pcode').attr('disabled', true);
                    $('#dataSource').selectpicker('val', res.data.dataSource);
                    $('#dataSource').selectpicker('refresh');
                    editStart = 2;
                } else {
                    bootbox.alert(res.msg);
                    return;
                }
            }
        });
        $('#EditContent').modal('show');
    });

    //查询项目是否配置服务
    function getServiceByCode(pcode) {
        var result = false;
        $.ajax({
            url: postPath + '/system/sysProject/isExitService',
            type: 'POST',
            data: {pcode: pcode},
            async: false,
            success: function (data) {
                result = data;
            }
        });
        return result;
    }

    //保存数据
    $('#btn_save').click(function () {
        var validataResult = validateData();
        if (validataResult) {
            var editurl = '';
            if (editStart == 1) {
                editurl = postPath + '/system/sysProject/insertProjectConfig';
            } else if (editStart == 2) {
                editurl = postPath + '/system/sysProject/updateProjectConfig';
            }

            var sysProject = {
                guid: $('#guid').val(),
                pcode: $('#pcode').val(),
                pname: $('#pname').val(),
                ptype: $('#ptype').val(),
                pdesc: $('#pdesc').val(),
                remark: $('#remark').val(),
                dataSource: $('#dataSource').selectpicker('val')
            };

            $.ajax({
                type: 'POST',
                url: editurl,
                async: false,
                data: JSON.stringify(sysProject),
                dataType: 'json',
                contentType: 'application/json',
                success: function (res) {
                    if (res.success) {
                        showMsg('保存成功!', 'success');
                        $('#tb_dataList').bootstrapTable('refresh');
                        $('#EditContent').modal('hide');
                    } else {
                        showMsg('保存失败,请刷新后重试!', 'error');
                    }
                }
            });
        }
    });

    // 获取数据源
    $.ajax({
        type: 'get',
        url: postPath + '/system/treeConfig/getTreeList',
        async: false,
        success: function (res) {
            var dataSourceList = [];
            $.each(res, function (index, el) {
                dataSourceList.push(
                    '<option value=' + el.id + '>' + el.name + '</option>'
                );
            });
            $('#dataSource').html(dataSourceList.join(' '));
            $('#dataSource').selectpicker('refresh');

        },
        error: function () {
            alert('error...');
        }
    });
});

/**查询条件与分页数据 */
function queryParams(pageReqeust) {
    var temp = {
        order: pageReqeust.order,
        pageNo: pageReqeust.offset / pageReqeust.limit + 1,
        pageSize: pageReqeust.limit,
        seachTxt: $('#seachTxt').val()
    };
    return temp;
}


//内容初始化
function cleanContent() {
    //维护内容清空
    $('#guid').val('');
    $('#pcode').val('');
    $('#pname').val('');
    $('#ptype').val('');
    $('#pdesc').val('');
    $('#remark').val('');
    $('#dataSource').selectpicker('val', '');

    //验证信息清空
    $('#valide_pcode').html('');
    $('#valide_pname').html('');
    $('#valide_ptype').html('');
    $('#valide_pdesc').html('');
    $('#valide_remark').html('');
    $('#valide_datasource').html('');
}

//验证表单内容
function validateData() {
    if ($('#pcode').val() == '') {
        $('#valide_pcode').html('项目编码不能为空!');
        return false;
    } else if (!/[a-z]/.test($('#pcode').val())) {
        $('#valide_pcode').html('项目编码只能是小写字母!');
        return false;
    } else if (editStart == 1) {
        var result = false;
        $.ajax({
            type: 'POST',
            url: postPath + '/system/sysProject/valProjectPcode',
            async: false,
            data: {pcode: $('#pcode').val()},
            success: function (res) {
                if (res.success == false) {
                    $('#valide_pcode').html('项目编码已存在!');
                    result = false;
                } else {
                    $('#valide_pode').html('');
                    result = true;
                }
            }
        });
        if (result == false) {
            return result;
        } else {
            $('#valide_pcode').html('');
        }
    } else {
        $('#valide_pcode').html('');
    }
    if ($('#pname').val() == '') {
        $('#valide_pname').html('项目名称不能为空!');
        return false;
    } else {
        $('#valide_pname').html('');
    }
    /*if($("#ptype").val() == ""){
          $("#valide_ptype").html("请输入工程类型!");
          return false;
      }else{
          $("#valide_ptype").html("");
      }*/
    if ($('#pdesc').val() == '') {
        $('#valide_pdesc').html('项目说明不能为空!');
        return false;
    } else {
        $('#valide_pdesc').html('');
    }
    if (!$('#dataSource').selectpicker('val')) {
        $('#valide_datasource').html('请指定项目数据源');
        return false;
    } else {
        $('#valide_datasource').html('');
    }

    return true;
}

function showMsg(text, icon) {
    $.toast().reset('all');
    $.toast({
        text: text,
        icon: icon,
        showHideTransition: 'fade',
        allowToastClose: true,
        hideAfter: 1500,
        stack: false,
        position: 'top-right',
        textAlign: 'left',
        loader: true,
        loaderBg: '#9ec600'
    });
}



function confirmDelete(message, confirmFunction){
    var messageObj = {
        title: '确认删除？',
        message: message ,
        callback: confirmFunction
    }
    bootbox.confirm(messageObj);
}
